java.util প্যাকেজটি Java-এর একটি অত্যন্ত গুরুত্বপূর্ণ এবং বিস্তৃত প্যাকেজ, যা ডেটা স্ট্রাকচার, ইউটিলিটি ক্লাস, অ্যালগরিদম, এবং ক্যালেন্ডার সিস্টেম সহ বিভিন্ন ধরনের কার্যাবলী প্রদান করে। এটি Java Collections Framework, Date and Time API, এবং অন্যান্য গুরুত্বপূর্ণ ইউটিলিটি ক্লাসের সমন্বয়ে গঠিত। java.util প্যাকেজটি Java Standard Library এর একটি অবিচ্ছেদ্য অংশ এবং প্রায় সব Java প্রোগ্রামেই ব্যবহৃত হয়।
Java.util প্যাকেজের মূল উপাদানগুলো:
- Collections Framework:
- Collections Framework Java-এর
java.utilপ্যাকেজের একটি গুরুত্বপূর্ণ অংশ যা ডেটা স্টোরেজ এবং তথ্য সংগঠনের জন্য বিভিন্ন ডেটা স্ট্রাকচার সরবরাহ করে। এটি List, Set, Queue, Map ইত্যাদি ডেটা স্ট্রাকচার অন্তর্ভুক্ত করে।List(যেমনArrayList,LinkedList) — অর্ডার অনুযায়ী উপাদান সংরক্ষণ করে।Set(যেমনHashSet,TreeSet) — ইউনিক উপাদান সংরক্ষণ করে।Queue(যেমনPriorityQueue,LinkedList) — FIFO (First In, First Out) প্রিন্সিপলে কাজ করে।Map(যেমনHashMap,TreeMap) — key-value পেয়ার সংরক্ষণ করে।
- Collections Framework Java-এর
- Utility Classes:
java.utilপ্যাকেজে অনেক ইউটিলিটি ক্লাস রয়েছে, যা বিভিন্ন কার্যাবলী সম্পাদন করতে সহায়তা করে, যেমন:Collectionsক্লাস — সংগ্রহশালা (collections) এর বিভিন্ন কাজ যেমন সাজানো, উল্টানো, শাফল করা ইত্যাদি।Arraysক্লাস — অ্যারে সম্পর্কিত বিভিন্ন কার্যাবলী যেমন সাজানো, সার্চ করা ইত্যাদি।
- Date and Time API:
java.util.Dateএবংjava.util.Calendarক্লাসগুলো আগে ব্যবহৃত হলেও, Java 8 থেকেjava.timeপ্যাকেজের অন্তর্ভুক্ত নতুন Date and Time API অনেক বেশি কার্যকরী এবং সঠিক। তবে, পুরনো কোড বা কিছু নির্দিষ্ট পরিস্থিতিতে এগুলো এখনও ব্যবহৃত হয়।
- Random Number Generation:
java.util.Randomক্লাসটি র্যান্ডম নম্বর তৈরির জন্য ব্যবহৃত হয়, যা বিভিন্ন ধরনের র্যান্ডম সংখ্যা (যেমন ইন্টিজার, ডাবল) তৈরি করতে সহায়ক।
- Iterator and Enumeration:
- Iterator এবং Enumeration ইন্টারফেসগুলি collection এর উপাদানগুলির ওপর চলাচল করতে ব্যবহৃত হয়। Iterator ক্লাসটি for-each লুপের চেয়েও আরও নমনীয় এবং শক্তিশালী হয়ে থাকে।
Java.util প্যাকেজের জনপ্রিয় ক্লাসসমূহ:
ArrayList:ArrayListএকটি List ইন্টারফেস ইমপ্লিমেন্ট করা ক্লাস যা ডাইনামিক অ্যারে ব্যবহার করে। এটি উপাদানগুলোকে index ভিত্তিক সংগঠিত করে এবং দ্রুত অ্যাক্সেস প্রদান করে।
Example:
import java.util.ArrayList; public class ArrayListExample { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("Apple"); list.add("Banana"); list.add("Orange"); System.out.println("List: " + list); } }HashMap:HashMapএকটি Map ইন্টারফেস ইমপ্লিমেন্ট করা ক্লাস, যা key-value পেয়ার ব্যবহার করে ডেটা সংরক্ষণ করে। এটি দ্রুত অ্যাক্সেসের জন্য hashing ব্যবহার করে।
Example:
import java.util.HashMap; public class HashMapExample { public static void main(String[] args) { HashMap<Integer, String> map = new HashMap<>(); map.put(1, "Apple"); map.put(2, "Banana"); map.put(3, "Orange"); System.out.println("Map: " + map); } }HashSet:HashSetএকটি Set ইন্টারফেস ইমপ্লিমেন্ট করে এবং এটি ডুপ্লিকেট উপাদান রাখে না। এটি hashing ব্যবহার করে যাতে দ্রুত উপাদানগুলি যোগ বা খোঁজা যায়।
Example:
import java.util.HashSet; public class HashSetExample { public static void main(String[] args) { HashSet<String> set = new HashSet<>(); set.add("Apple"); set.add("Banana"); set.add("Orange"); // Duplicate will be ignored set.add("Apple"); System.out.println("Set: " + set); } }Collections:Collectionsক্লাসটি একটি ইউটিলিটি ক্লাস যা List, Set, Queue ইত্যাদি সংগ্রহশালার (collections) জন্য বিভিন্ন স্ট্যাটিক মেথড প্রদান করে, যেমন সাজানো, উল্টানো, শাফল করা ইত্যাদি।
Example:
import java.util.ArrayList; import java.util.Collections; public class CollectionsExample { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<>(); list.add(5); list.add(2); list.add(8); list.add(1); Collections.sort(list); System.out.println("Sorted List: " + list); } }Calendar:Calendarক্লাসটি Date ক্লাসের উপর ভিত্তি করে সময় এবং তারিখ পরিচালনার জন্য ব্যবহৃত হয়। এটি অনেক বেশি শক্তিশালী এবং নমনীয়, তবে Java 8 থেকেjava.timeপ্যাকেজের নতুন Date and Time API আরও উন্নত এবং ব্যবহারকারী-বান্ধব।
Example:
import java.util.Calendar; public class CalendarExample { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); System.out.println("Current Date: " + calendar.getTime()); } }Random:Randomক্লাসটি র্যান্ডম নম্বর তৈরি করতে ব্যবহৃত হয়। এটি int, long, double ইত্যাদি র্যান্ডম মান তৈরি করতে পারে।
Example:
import java.util.Random; public class RandomExample { public static void main(String[] args) { Random random = new Random(); System.out.println("Random number: " + random.nextInt(100)); // Generates random number between 0 and 100 } }
Java.util প্যাকেজের অন্যান্য ক্লাসসমূহ:
PriorityQueue- এটি একটি Queue ইন্টারফেস ইমপ্লিমেন্ট করে, যা উপাদানগুলিকে নির্দিষ্ট অর্ডারে সাজায়।Iterator- একটি ইন্টারফেস যা Collection এর উপাদানগুলির ওপর চলাচল করতে ব্যবহৃত হয়।TimerএবংTimerTask- সময় নির্ধারণ এবং টাস্ক কার্যকর করতে ব্যবহৃত হয়।Stack- Stack ডেটা স্ট্রাকচার প্রদান করে যা LIFO (Last In First Out) ভিত্তিক কাজ করে।
Java.util প্যাকেজের ব্যবহার:
- Collections Framework: Java Time API সহ অন্যান্য ক্লাসে
List,Set, এবংMapব্যবহার করা হয় ডেটা সংরক্ষণ এবং সংগঠিত করতে। - Utility Functions: ডেটা স্ট্রাকচার যেমন
Collections.sort(),Collections.shuffle(),Arrays.sort()ইত্যাদি ইউটিলিটি ক্লাসের মাধ্যমে সাধারণ কাজগুলো সহজ করা হয়। - Date and Time Management:
Calendar,Date, এবংTimeব্যবহারের মাধ্যমে আপনি সময় এবং তারিখের হিসাব করতে পারেন।
java.util প্যাকেজটি Java-এর একটি অত্যন্ত গুরুত্বপূর্ণ অংশ যা ডেটা স্ট্রাকচার, ইউটিলিটি ক্লাস, এবং বিভিন্ন গাণিতিক ও সময় সম্পর্কিত কার্যাবলী সরবরাহ করে। এটি প্রতিটি Java ডেভেলপারদের জন্য একটি অপরিহার্য অংশ, কারণ এর মাধ্যমে বিভিন্ন ধরনের ডেটা প্রক্রিয়াকরণ এবং পরিচালনা সহজ হয়। Collections ফ্রেমওয়ার্ক, List, Set, Map, Queue এবং বিভিন্ন ইউটিলিটি ক্লাসের মাধ্যমে উন্নত অ্যাপ্লিকেশন তৈরি করা সম্ভব।
Read more